package javaClassExercise.valueTransport;

/**
 * Created by lomo on 2018.
 */
public class baozhuang {
    public static void main(String[] args) {
        Integer o1 = new Integer(1);
        Integer o2 = new Integer(2);

        System.out.println("Values of o1 & o2 before modified: ");
        System.out.println("o1 = " + o1.intValue() + " ; o2 = " + o2.intValue());
        modifiy(o1, o2);
        System.out.println("Values of o1 & o2 after modified: ");
        System.out.println("o1 = " + o1.intValue() + " ; o2 = " + o2.intValue());

    }

    private static void modifiy(Integer x, Integer y) {
        x = new Integer(3);
        y = new Integer(6);
    }
}


/**
 *
 * 运行结果：
 * Values of o1 & o2 before modified:
 * o1 = 1 ; o2 = 2
 * Values of o1 & o2 after modified:
 * o1 = 1 ; o2 = 2
 *
 * 分析：
 * 调用modify方法时, 在堆栈中为每个引用创建了一个拷贝，这些拷贝被传递到函数/方法里，modify方法修改只是修改了引用的拷贝，而不是原始的引用。
 * 故输出结果还是1和2
 *
 * 参考：https://mp.weixin.qq.com/s/G2gzBGJ7zV0leo0tVPuCGw
 */
